package com.data.center.util.ExcelUtils;

import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.converters.ReadConverterContext;
import com.alibaba.excel.converters.WriteConverterContext;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.data.WriteCellData;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class CustomStringToListConverter implements Converter<List> {
    @Override
    public Class<?> supportJavaTypeKey() {
        return List.class;
    }

    @Override
    public CellDataTypeEnum supportExcelTypeKey() {
        return CellDataTypeEnum.STRING;
    }

    /**
     * @description:这里读的时候会调用，通过英文逗号将字符串分割为一个个的字符串，然后放入List中
     *
     * @param context
     * @return
     */
    @Override
    public List convertToJavaData(ReadConverterContext<?> context) {
        List<String> listValue = new ArrayList<>();
        if (context.getReadCellData().getStringValue() != null) {
            listValue.addAll(Arrays.asList(context.getReadCellData().getStringValue().split(",")));
        }
        return listValue;
//        return "自定义：" + context.getReadCellData().getStringValue();
    }

//    /**
//     * 这里是写的时候会调用 不用管
//     *
//     * @return
//     */
//    @Override
//    public WriteCellData<?> convertToExcelData(WriteConverterContext<String> context) {
//        return new WriteCellData<>(context.getValue());
//    }

}